package com.serie402.common.utils;

import java.util.Locale;

import com.serie402.common.exceptions.AdminException;

public interface Constants {
	public static interface FieldNames {
		public static final String NEWS_ID = "newsId";
	}
	
	public static interface Mappings {
		// request/session objects
		public static final String ARTICLE_DTO = "dto.article";
		public static final String NEWS_DTO = "dto.news";
		public static final String EVENTS_DTO = "dto.events";
		public static final String GALLERY_DTO = "dto.gallery";
		public static final String PHOTO_ALBUM_DTO = "dto.photoAlbum";
		public static final String MUSIC_DTO = "dto.music";
		public static final String VIDEOS_DTO = "dto.videos";
		public static final String PAGE_MESSAGES_LIST = "list.pageMessages";
		public static final String ACTION_KEY = "serie402.action";
	}
	
	public static interface Navigation {
		public static final String CATEGORY = "category";
		public static final String SUB_CATEGORY = "subCategory";
		public static final String TARGET = "target";
		
		public static final String NEWS_CATEGORY_LOCAL = "local";
		public static final String NEWS_CATEGORY_NATIONAL = "national";
		public static final String NEWS_CATEGORY_BUSINESS = "business";
		public static final String NEWS_CATEGORY_POLITICS = "politics";
		public static final String NEWS_CATEGORY_EDUCATION = "education";
		public static final String NEWS_CATEGORY_TECHNOLOGY = "technology";
		public static final String NEWS_CATEGORY_HEALTH = "health";
		
		public static final String NEWS_CATEGORY_SPORTS = "sports";
		public static final String NEWS_CATEGORY_ENTERTAINMENT = "entertainment";
		public static final String NEWS_CATEGORY_TOP_NEWS_FOR_EACH_CATEGORY = "topNewsForEachCategory";
		
		public static final String NEWS_SPORTS_SUBCATEGORY_MLB = "mlb";
		public static final String NEWS_SPORTS_SUBCATEGORY_NBA = "nba";
		public static final String NEWS_SPORTS_SUBCATEGORY_NFL = "nfl";
		public static final String NEWS_SPORTS_SUBCATEGORY_NHL = "nhl";
		public static final String NEWS_SPORTS_SUBCATEGORY_BOXING = "boxing";
		public static final String NEWS_SPORTS_SUBCATEGORY_OTHER = "other";
		
		public static final String NEWS_ENTERTAINMENT_SUBCATEGORY_SOCIAL_EVENTS = "socialEvents";
		public static final String NEWS_ENTERTAINMENT_SUBCATEGORY_ENTERPRISE_EVENTS = "enterpriseEvents";
		public static final String NEWS_ENTERTAINMENT_SUBCATEGORY_WEIRD_NEWS = "weirdNews";
		public static final String NEWS_ENTERTAINMENT_SUBCATEGORY_RUMORS = "rumors";
		public static final String NEWS_ENTERTAINMENT_SUBCATEGORY_TRAVEL = "travel";
		public static final String NEWS_ENTERTAINMENT_SUBCATEGORY_FASHION = "fashion";
	}
	
	public static interface Property {
		public static final String INPUT_VALIDATION_CLASSIFIEDS_CATEGORY = "input.validation.classifieds.category";
		public static final String INPUT_VALIDATION_NEWS_CATEGORY = "input.validation.news.category";
		public static final String INPUT_VALIDATION_NEWS_SUB_CATEGORY = "input.validation.news.subCategory";
		public static final String INPUT_VALIDATION_ARCHIVES_TARGET = "input.validation.archives.target";
		
		public static final String WEBPAGE_URL_ARCHIVES = "webpage.url.archives";
		public static final String WEBPAGE_URL_CLASSIFIEDS = "webpage.url.classifieds";
		public static final String WEBPAGE_URL_NEWS = "webpage.url.news";
		
		public static final String WEBPAGE_URL_MULTIMEDIA_PHOTO_ALBUM = "webpage.url.multimedia.photoAlbum";
		public static final String WEBPAGE_URL_MULTIMEDIA_GALLERY = "webpage.url.multimedia.gallery";
		public static final String WEBPAGE_URL_MULTIMEDIA_MUSIC = "webpage.url.multimedia.music";
		public static final String WEBPAGE_URL_MULTIMEDIA_VIDEOS = "webpage.url.multimedia.videos";
		
		public static final String WEBPAGE_URL_ADMIN_AUTHOR_CREATE = "webpage.url.admin.author.create";
		public static final String WEBPAGE_URL_ADMIN_AUTHOR_UPDATE = "webpage.url.admin.author.update";
		public static final String WEBPAGE_URL_ADMIN_AUTHOR_DELETE = "webpage.url.admin.author.delete";
		public static final String WEBPAGE_URL_ADMIN_AUTHOR_VIEW = "webpage.url.admin.author.view";
		public static final String WEBPAGE_URL_ADMIN_AUTHOR_SEARCH = "webpage.url.admin.author.search";
		
		public static final String MESSAGE_SUCCESS_CREATE = "message.success.create";
		public static final String MESSAGE_SUCCESS_UPDATE = "message.success.update";
		public static final String MESSAGE_SUCCESS_DELETE = "message.success.delete";
		
		public static final String MESSAGE_ERROR_CREATE = "message.error.create";
		public static final String MESSAGE_ERROR_UPDATE = "message.error.update";
		public static final String MESSAGE_ERROR_DELETE = "message.error.delete";
		
		public static final String MESSAGE_REPLACE_KEY_CREATE = "{create}";
		public static final String MESSAGE_REPLACE_KEY_UPDATE = "{update}";
		public static final String MESSAGE_REPLACE_KEY_DELETE = "{delete}";
		
		public static final String CACHE_SIZE_NEWS_PAGE = "cache.timed.size.NewsPage";
		public static final String CACHE_TIMEOUT_NEWS_PAGE = "cache.timed.timeout.NewsPage";
		
		// stored procedure property file mappings
		public static final String SP_READ_PHOTO_ALBUMS = "dao.storedProcedure.readPhotoAlbums";
		public static final String SP_CREATE_PHOTO_ALBUM = "dao.storedProcedure.createPhotoAlbum";
		public static final String SP_READ_PHOTO_ALBUM = "dao.storedProcedure.readPhotoAlbum";
		public static final String SP_UPDATE_PHOTO_ALBUM = "dao.storedProcedure.updatePhotoAlbum";
		public static final String SP_DELETE_PHOTO_ALBUM = "dao.storedProcedure.deletePhotoAlbum";
		public static final String SP_GET_PHOTO_ALBUM_PHOTOS = "dao.storedProcedure.readPhotoAlbumPhotos";
	}
	
	public static interface Exceptions {
		public static final AdminException ADMIN_EXCEPTION = new AdminException();
	}
	
	public static interface Instances {
		public static final Locale DR_LOCALE = new Locale("es_DO");
	}
	
	public static interface Misc {
		// misc constants
		public static final int NEWS_IMPORTANCE_LOW = 1;
		public static final int NEWS_IMPORTANCE_HOT = 4;
		public static final int NEWS_IMPORTANCE_BREAKING = 5;
	}
}